#ifndef GUIWP_MAINWINDOW_HPP 
#define GUIWP_MAINWINDOW_HPP 

#include <string>

#include "widget_base.hpp"
#include "moteur_base.hpp"
namespace GUIWP {

//cette classe permet de créer une fenetre principale
template <class Moteur> class MainWindow : public widget_base
{
    void draw(Moteur_Base&){}
    Moteur m_moteurRendu;
    const Moteur_Base::Info& m_input;
protected:

    void display()
    {
	std::list<widget_base*>::iterator it=children.begin();
	std::list<widget_base*>::iterator ite=children.end();
	for(;it!=ite;++it)
	    (*it)->draw(m_moteurRendu);
    }
public:
    MainWindow(int largeur,int longeur, const std::string& name,int profondeur=32):
	m_moteurRendu(largeur,longeur,name,profondeur),m_input(m_moteurRendu.infoInput())
    {

    }

    int run(){
	bool exit=true;
	while(!m_input.closed())
	{
	    m_moteurRendu.traiterEvent();
	    display();
	    m_moteurRendu.display();
	}

	return 0;
    }

};


}
#endif
